home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacAddict 69
/
MacAddict_069_2002_05.iso
/
Software
/
Development
/
REALbasic Carbon 4 Trial.dmg
/
REALbasic 4
/
Read Me's
/
REALbasic 4 Release Notes.txt
< prev
next >
Wrap
Text File
|
2002-01-06
|
77KB
|
1,790 lines
Key:
[Opt] = Optimization
[Bug] = Bug Fix
[Imp] = Improvement on bug, but major problems still exist
[New] = New Feature
[Chg] = Changes Previous Functionality
[Kis] = Known Issue
[Wrk] = WorkAround
[WrB] = WorkAround broken as a result of bug fix.
[Nlr] = No Longer Reproducible, Reason Unknown. Usually a consequence of
some other fix.
[FYI] = Please note.
[Tip] = Here's a handy piece of information.
(All) = All
(Mac) = Mac OS compiled applications, and possibly the IDE.
(68K) = 68K compiled applications, and possibly the IDE running on a 68K
Mac.
(Win) = One of the flavors of Microsoft Windows (NT, 9x, 2000, Me)
(IDE) = REALbasic, the application
(OSX) = Mac OS X DP4 or later
(Car) = Carbon version of the Mac OS or IDE (CarbonLib 1.2.5, Mac OS 8.6
and higher, and Mac OS X 10.0 or later)
4.0.1b3 -- 2002/01/04
[Fix] (IDE) App Deactivation: switching from REALbasic to some other app
and back now reliably deactivates and reactivates REALbasic
(including hiding the floating palettes, etc.).
[Fix] (All) Database: accessing the error code or message no longer crashes.
[Fix] (All) Database -- Postgres Plugin: updating boolean fields now work.
[Fix] (IDE) External Windows: can now be renamed.
[Fix] (IDE) External Project Items: can now be relocated even when the
external item is not found (extends an earlier fix for movies,
pictures, and sounds, to things like external windows and classes).
[Fix] (All) Listbox: Headers of the listbox now depress again.
Broken for Win32 and OS X in 4.0.1b1
[Fix] (All) Serial Control: data not read before additional data arrives is
no longer lost; fixes bug introduced in 4.0a4.
[Fix] (Mac) TabPanel: background color of checkboxes (etc.) on a TabPanel is
now correct on MacOS versions prior to 8.5.
4.0.1b2 -- 2002/01/03
[Fix] (IDE) Build Settings Dialog: REALbasic now will no longer overwrite
the project file with a Mac or Windows built application. This
protection was in place previously only for Mac applications and
didn't work in cases where the name was the same but the
capitalization was different.
[Fix] (OSX) Canvas: focus ring is now completely erased when a canvas loses
the focus.
[Fix] (Car) EditField: option-drag of text within a field now does a copy
rather than move.
[Fix] (Car) EditField: drop of text is no longer accompanied by an improper
"fly-back" effect.
[Fix] (All) Listbox: Editable Cells now scroll into view even when the row
and column of the editable cell are both 0.
[Fix] (Win) Listbox: Editable Cell contents are no longer invisible when the
cell initially gets the focus.
[Fix] (Win) Listbox: Editable Cells now invoke the CellLostFocus and
CellGainedFocus events when the current editable cell changes.
[Fix] (All) Office plugins: objects passed back as variants are now
accessible instead of returning nil. For example, getting the
Style class of a Paragraph in Word returns a variant object,
which you can now cast as a WordStyle object.
[Fix] (All) Office plugins: getter/setter functions with variant parameters
are now optional. For example, getting/setting the Range of an
Excel Spreadsheet no longer requires 2 parameters.
[Fix] (Mac) RbScript: arrays used in functions or subs no longer cause
random corruption of local variables and unpredictable crashes.
[Fix] (All) RbScript: Oct function no longer returns spurious trailing zero.
[Fix] (All) RbScript: properties declared Private are now accessible to
subclasses.
[Fix] (All) Rb3DSpace: SkyColor is no longer lost when this control is
resized.
4.0.1b1 -- 2001/12/21
[Imp] (Mac) Listbox: Improved speed of selecting rows
[Imp] (Mac) Listbox: Other speed improvements.
[Fix] (Mac) Window: Keydown no longer leaks memory.
[Fix] (Mac) Listbox: No longer slows down over time.
[New] (Win) Listbox: Drastically reduced flicker when scrolling.
[Fix] (All) Listbox: Reduced flicker caused by clicking on a listbox header.
[Kis] (Win) Listbox: Editable Cell contents are initially invisible.
[Chg] (Mac) Build Settings Dialog: Increased the preferred memory to better
reflect new features of 4.0.
4.0 -- 2001/12/18
[Imp] (Win) Listbox: The second click in an editable cell, now moves the
cursor.
[Fix] (All) Listbox: Pressing "Return" or "Esc" in an editable cell now
causes the focus to return to the listbox.
[Fix] (Mac) Listbox: The focus ring is now removed after a "Return" or
"Esc" in an editable cell.
[Fix] (All) Listbox: The listbox no longer scrolls to the right after a
return followed by an additional keypress.
[Fix] (Win) Listbox: Added support for multiple discontiguous selection
on Win32 using the control key.
[Fix] (Mac) RbScript: code generator bug which caused running scripts to
do all sorts of incorrect things (freeze, report incorrect data,
take the wrong branch of an "if" for no good reason, etc) has been
repaired.
[Fix] (Mac) RbScript: user-written functions which accept multiple
non-floating-point parameters no longer receive bogus values in
all parameters but the first.
[Fix] (Mac) RbScript: Scripts which use ByRef parameters no longer fail
a Parser.cpp assertion.
[Fix] (All) RbScript: Comments no longer confuse the line counter; line
numbers reported in CompileError events are thus less likely to be
erroneous.
[Fix] (All) RbScript: compiler no longer crashes when you try to pass a
literal as a byref parameter.
[Fix] (Mac) Editfield: Fixed a leak in the Editfield.
[Kis] (All) Some circumstances can cause a delay when selecting rows in
a listbox. Syptoms may include incorrect row selection if mouse is
moved rapidly.
4.0fc1 -- 2001/12/17
[Chg] (Car) Unicode Editing: No longer test some assertions in
AtsuEdit.cpp.
[Fix] (All) Listbox: Editable cells no longer jump a pixel to the
right when the cell gets the focus.
[Fix] (All) Listbox: Editable cells now scroll properly with the
listbox.
[Fix] (All) Listbox: Editable cells now come into view if the user
types in the cell.
[Fix] (Mac) RbScript: memory is no longer corrupted when source
property is changed.
[Fix] (Mac) RbScript: now initializes temporary storage space, which
fixes a memory corruption bug.
[Fix] (Mac) TabPanel: Controls on a tabPanel no longer cause problems
on OS 8.0 and 8.1.
4.0b5 -- 2001/12/16
[Fix] (Mac) File dialogs: drawing of contents from other windows into
these dialogs has been fixed.
[Fix] (Mac) Listbox: The selected row now moves when the listbox is
sorted. This fix only applies to listboxes with single
selection specified. This is still an issue with
listboxes with multiple selection specified.
[Fix] (Mac) Modal dialogs: now properly re-activate when you switch
out to another app and then switch back by clicking in the
dialog content area.
[Fix] (Mac) MultiLine Editor: Added space between buttons to
accomodate OS X.
[Fix] (Mac) Properties Window: Fixed Big Ugly Button that used
to pop-up occasionally in the properties window,
especially on OS X.
[Fix] (Mac) RbScript: PartialRun works again [broken with introduction
of native code compiler]
[Fix] (All) RbScript: State property is now updated when a script
finishes running.
[Fix] (Car) RbScript: assertion failure at CGPPC.cpp:786 no longer
occurs.
4.0b4 -- 2001/12/13
[New] (Car) EditField: Unicode input is now supported. This allows
you to use key layouts such as "Extended Roman." However,
this works only in built apps, not within the IDE.
[Fix] (All) Dictionary: freeze when adding more than 32746 items has
been fixed.
[Fix] (Mac) EditField: multi-line EditFields with a horizontal
scrollbar on classic MacOS no longer have
strange selection-drawing behavior.
[Fix] (Mac) EditField: MouseDown event can no longer disrupt the
display of the field if you do something that changes the
graphics state, such as assigning to a StaticText.
[Kis] (Mac) EditField: MouseDown event -- returning true from this
event does not actually stop the EditField from processing
the click, as it does under Carbon. This will probably
change in the future.
[Fix] (Car) EditField: flicker that appears while typing in a Carbon
app under classic MacOS has been reduced.
[Fix] (Car) EditField: selection point is now at start rather than end
of text when a field first opens, or after assigning to
the Text property, or using SetTextAndStyle.
[Fix] (Car) EditField: now behaves more like the Classic EditField if
you do something nutty like change the selStart property
in the SelChange event.
[Fix] (Car) EditField: dragging text over a field, but then dropping
it elsewhere, no longer leaves behind a visual indication
of the last potential drop position.
[Fix] (Win) EditField.SetTextAndStyle: no longer causes strange redraw
problems.
[Fix] (OSX) External Project Items: crash that could occur when
control-clicking an external item (such as a picture)
whose external file can't be found.
[Fix] (Mac) Listbox: Calling GetPixel/SetPixel in the
CellBackgroundPaint or CellTextPaint events will no longer
cause an outofbounds exception in cases where the cell is
partly scrolled offscreen. GetPixel will return a white
pixel and set pixel will be ignored.
[Fix] (All) Listbox: When entering a cell for the purposes of editing
by either clicking in an editable cell or using the
editCell method, the entire text is now selected, instead
of some of it. This selection also now occurs before the
CellGotFocus so you can change it in that event if desired.
[Fix] (All) Listbox: Editable cells now clip to the bounds of the
listbox again.
[Fix] (IDE) New Project: now always considered unmodified, even after
declining to save the last project.
[Fix] (IDE) PopupMenu: baseline alignment has been corrected;
previously off by 1 pixel.
[Fix] (IDE) Project: importing a class that replaces an existing class
of the same name now updates all controls and subclasses
of that class, so you should immediately be able to run.
[Fix] (All) RbScript: fixed some problems with variant type
conversions.
[Fix] (Win) Shell: fixed possible memory corruption when retrieving
the result string.
[Fix] (Mac) Socket: Fixed memory leak caused by connecting before the
previous connect request finished.
[Fix] (Mac) Socket: Attempts to connect to the same address and port
of a socket are ignored if the connection is already in
progress, this makes it possible to call connect in a
timer. If you want to start a new connection, close the
connection first and then call connect, or change the
address and port.
[Fix] (Win) UnhandledException event on Application class catches
otherwise unhandled exceptions. The event can return True
if it handles the event and False if it wants REALbasic's
default unhandled exception processing to occur.
4.0b3 -- 2001/12/11
[New] (Car) EditField: copy/paste now supports Unicode (UTF-16) data
(standard Mac type 'utxt').
[New] (All) RbScript: new array method "Pop" removes the last element
of the array and returns its value.
[New] (All) RbScript: now supports second parameter for the Ubound
function, as in REALbasic itself.
[New] (All) RbScript: now catches nil object exceptions instead of
allowing the script to crash.
[Fix] (IDE) 68k: Fixes a problem that could occur when your project
had specified using 68k and 68k only.
[Fix] (IDE) Build Settings Dialog: If you inadvertently type a smaller
suggested size than minimum size, REALbasic will up your
suggested size to the minimum value.
[Fix] (IDE) Build Settings Dialog: REALbasic now warns you if you have
2 or more application with the same name, specified in the
build dialog and won't let you dismiss the dialog until
you fix them.
[Fix] (IDE) Compiling: assertion failure at "compile.cpp:7071" has
been fixed.
[Fix] (OSX) Listbox: Non-Hierarchical listboxes on OS X no longer
highlight the cell text. A row highlight is still
performed but can be overridden by code in the
CellBackgroundPaint as always.
[Fix] (Mac) Listbox: Listbox Headers now auto-deactivate when the
REALbasic app goes into the background.
[Fix] (OSX) Listbox: A ColumnSortDirection of 0 (Don't sort) will no
longer show the sort widget in the header even if you are
currently depressing the header.
[Fix] (All) Listbox: CellClick event now returns the correct x value
and not the correct value + 1.
[Fix] (All) Listbox: Rowpictures moved down a pixel to behave more
like they did in 3.5.
[Fix] (All) PopupMenu.RowTag: a nilobject exception is now raised when
converting a non-existent rowtag value.
[Fix] (IDE) Project Window: "New Subclass" contextual menu command has
returned for class items. (Disappeared in 4.0a5.)
[Fix] (PPC) RbScript: objects no longer get unlocked twice (this
sometimes led to crashes).
[Fix] (All) RbScript: no longer allows you to ignore function results.
[Fix] (All) RbScript: Spurious type mismatch errors when passing a
reference variable or object property to a method have
been suppressed.
[Fix] (All) RbScript: peculiar string behaviour, sometimes resulting
in crashes, has been corrected.
[Fix] (All) RbScript: arrays of objects no longer cause massive memory
leaks.
[Fix] (All) RbScript: ReDim'ing an array of strings no longer causes
occasional crashes.
[Fix] (Win) Strings: comparing an empty string with a string with null
character(s) now works like it does on the Mac.
[Fix] (OSX) TabPanel: now draws with surrounding area properly
matched to the background. Also, most controls draw
properly on top of the TabPanel, but see [Kis] below.
[Chg] (All) Control hierarchy: removed control hierarchy behaviour.
Controls now behaves like they did before 4b1.
[Kis] (OSX) LittleArrows, ChasingArrows: don't properly draw on top of
a tab panel if the window has a solid background color.
[Kis] (All) TabPanels: embedding tabpanels is not possible.
4.0b2 -- 2001/12/07
[New] (IDE) Copying a control now copies all its embedded controls as
well, same with cutting, all embedded controls are also cut.
[Fix] (IDE) Build Settings: The non-release field is now larger so
that you can type more than 1 digit.
[Fix] (IDE) Build Settings Dialog: Macintosh Application name fields
never inappropriately enabled.
[Fix] (IDE) External Windows, Classes, and Modules: now written to
(and read from) XML-format project files. Previously they
were omitted from XML files.
[Fix] (IDE) Listbox: Focus Rings no longer appear in the Window Editor
around listboxes.
[Fix] (IDE) Menu Editor: modifier keys (shift, command, option, and
control) are now drawn properly in the menu display; the
command-key glyph also now draws correctly in localized
builds of the IDE (e.g., Japanese).
[Fix] (IDE) Option dragging of multiple selected controls now fixed.
[Fix] (IDE) Quit and Hide commands (in OS X): now properly
localizable.
[Fix] (All) Database -- REALdb: fixed a potential crash when selecting
from an empty table (i.e. no records).
[Fix] (All) Listbox: REALbasic no longer will attempt to draw the text
of a listbox cell if there is none. This fixes a problem
manifest when using a large RowPicture and no text on OS
X, and will improve performance On Cells that don't have
text. NOTE: The CellTextPaint event will still fires and
behaves exactly as it used to.
[Fix] (All) Listbox CellBorders: Improved drawing when 2 listbox cells
have borders of differing types.
[Fix] (All) Listbox CellBorders: Improved the look of borders
surrounding one cell in a listbox.
[Fix] (All) Listbox Editable Cell: Now honors the current font size
when editing a cell.
[Fix] (All) Listbox Editable Cell: Focus rings around cells look much
better.
[Fix] (All) RegEx: Now only matches and replaces the empty string once
(and only once) in a Replace call where ReplaceAllMatches
is set. technically, if we allowed it, the Replace should
go on forever, but this does no good to anyone. The new
behavior is more in line with what one would expect (i.e.
it doesn't hang your machine). Here is an example of how
to cause this. Set "$" to the search pattern and "a" as
the replacement pattern. Since "$" matches the end of the
string, it will always match so ReplaceAll didn't know
when to terminate, now we terminate after replacing one
empty string. Note: If a user implements their own
"Replace All" based on successive calls to Replace they
are responsible for seeing to it that they don't loop
infinitely in this case.
[Fix] (IDE) SpriteSurface: fixed spritesurface crash on close.
[Fix] (All) TabPanels: it is now possible to embed TabPanels within
TabPanels.
[Fix] (Mac) FolderItem.OpenAsPicture: 8-bit images in formats other
than PICT are now read with the correct color palette
(PICT files were always read correctly).
[Fix] (Mac) Timer: Macs that have been up more than 25 days no longer
cause Timers to fail to start.
[Fix] (Mac) UnicodeConverter library: now weak-linked, so you should
be able to once again launch REALbasic even with
extensions off.
[Fix] (Car) EditField: Input Manager inline input now draws underline
to show the input state.
[Fix] (Car) EditField: Alignment <> 0 now behaves better on fields
with a horizontal scrollbar.
[Fix] (Car) EditField: dropping text into a field now fires the
TextChange event.
[Fix] (Car) EditField: now shows inactive/disabled state by "graying
out" the text.
[Fix] (Car) TabPanel: a control that is on top of another control that
is on a tabpanel now properly draws the background color
to match the tabpanel.
[Fix] (OSX) Graphics.DrawString: Malloc warnings no longer appear in
the Console when drawing characters with ASCII values less
than 32. Also fixes a memory leak caused by such drawing.
[Fix] (OSX) Listbox Headers: Headers now get a depressed look on OS X
when appropriate.
[Fix] (OSX) Listbox Headers: No longer draws the dark grey line
underneath the listbox headers. The line is a holdover
from very early prerelease version of OS X.
[Chg] (IDE) Code Browser: Events in left pane of the Code Browser are
now sorted alphabetically. The event that appears
initially when editing may no longer be the first item on
the list. We have changed the initial event of a few
controls to better suit how people are likely to work.
This won't affect your code.
[Chg] (Mac) EditField: new ATSUI-based EditField is now used only in
Carbon; classic builds now revert to the same technology
(TextEdit and WASTE) used in 3.5 and earlier versions of RB.
4.0b1 -- 2001/12/04
[New] (IDE) Build Settings Dialog: Added a new field to specify the
Mac OS X/Carbon name. This new field is also accessible using
Applescript via the new buildMacCarbonName property of the class document
in the standard suite.
[New] (IDE) Build Settings Dialog: Added new menu option "Build Application..."
that builds without hassling you with the dialog. To show the dialog the
old menu option has been renamed "Build Settings..." you can now dismiss
this dialog without building for your convience. The Build process is
still AppleScriptable and Recordable.
[Chg] (IDE) Built Application Name: The default built application name has
been changed from "AppName", to some variant of "My Application".
[New] (IDE) Make Application: when successful, the newly-created application(s)
is (are) revealed and selected in the Finder.
[New] (IDE) Control-C: now halts an app running within the IDE even when no
code is executing.
[New] (IDE) Find And Replace: The state of the Advanced options is now saved.
[New] (All) Listbox: Added a sort method. This resorts the data based on the
current HeadingIndex and ColumnSortDirection. Although HeadingIndex will
also do this, we strongly encourage you to use the new function.
HeadingIndex will most likely be deprecated in the next major revision of
REALbasic.
[New] (IDE) Preferences: added font size of 0 to the default control font size
popup.
[Fix] (All) Array.Insert: now works correctly for arrays of type Single;
previously inserted garbage.
[Fix] (All) Array.Insert: now works correctly for the boundary case when the
insertion position is equal to the array's UBound()+1; in this case, it's
equivalent to array.Append.
[Fix] (Win) Controls: font size of 0 will now default to 12 on Windows.
[Fix] (IDE) Compiler: now catches as an error cases like "me.someControl" or
"someControl.someOtherControl", with the error message "Controls can't be
accessed by name via other controls". Previously such cases would crash
or cause other run-time errors.
[Fix] (Mac) Database -- OpenBase plugin: No longer reports a "Cannot update
cursor unless query includes _rowid field" when performing a selection or
moving next.
[Fix] (Mac) EditField: caret position in an empty paragraph is now more
correct, even when the field alignment is set to 2 (centered) or 3
(right-justified), or at large font sizes. [1/2 hour]
[Fix] (OSX) EditField: periods and spaces no longer trail to the right of a
right-aligned field, causing the whole field to shift to the left.
[Fix] (Mac) EditField: Focus ring now draws properly for EditFields which were
previously hidden by a TabPanel or by Visible=false, and then shown.
[Fix] (IDE) External Project Items: opening a project containing external items
no longer causes REALbasic to unexpectedly quit under OS X.
[Fix] (IDE) Find & Replace: ReplaceAll no longer causes infinite recursion when
the item you are replacing is a subset of the replacement text and the
user has successfully completed a find previously. Fixed part of the
problem in 4.0a6.
[Fix] (All) Listbox ColumnSortDirection: Setting the ColumnSortDirection from
code works in many cases where it previously didn't. Namely: When the
header of the column being set isn't currently depressed, When the value
is 0 (Don't Sort) on an initial run, and From within SortColumn (Although
not recommended).
[Fix] (All) Listbox: CellLostFocus Event now fires whenever editing is
committed or canceled even in cases where a forced commit or cancel
occurs (e.g. DeleteAllRows). This fixes a failed assertion.
[Fix] (All) Listbox: Sorting a listbox no longer messes up CellBorder
information.
[Fix] (IDE) Picture Project Items: if the picture file can't be found, RB will
only ask you to locate it once (even if you cancel). But you can
control-click it to Relocate it later.
[Fix] (Car) Navigation Services: Fixed crash caused by dragging from a Finder
Pop-up Window proxy Icon into a Nav Services window on Carbon.
[Fix] (All) PopupMenu: MouseDown event no longer fires if clicking on a
disabled PopupMenu.
[Fix] (All) ScrollBars: MouseDown event no longer fires if clicking on a
disabled ScrollBar.
[Fix] (All) Sliders: MouseDown event no longer fires if clicking on a disabled
Slider.
[Fix] (All) RbScript: a bug where objects that implemented no interfaces would
occasionally set themselves equal to nil has been quashed (introduced in
4.0a6)
[Fix] (All) RegEx: You can now use Replace when the TargetString contains null
characters. (Fixed half of this problem for version 4.0a6)
[Fix] (OSX) StaticText, EditField: fixed an infinite loop (program hang) that
could occur in the IDE when setting the width of the control to less than
the width of some character it contains.
[Fix] (Mac) Windows: refresh bug which sometimes caused windows (e.g. the
toolbar) to stop drawing part of their content has now been fixed.
[Chg] (Mac) EditField: border area is now erased only under OS X, and only when
there is a border. This allows for a better appearance over colored
backgrounds that don't match the window background color, under classic
MacOS or when using borderless EditFields.
[Chg] (All) EditField: removed Boolean result in MouseUp event.
[Chg] (All) Listbox: Sort Widget no longer appears when there is no space to
draw it.
[Chg] (OSX) Listbox: Sort Widget no longer appears (on Mac OS X) when the user
has Don't Sort selected.
[Chg] (OSX) Listbox: Text is no longer white (On Mac OS X) when the user is
depressing the header.
[Chg] (All) Listbox: Text now doesn't overwrite its borders in the header if it
is too large to fit.
[Chg] (All) Listbox: ColumnSortDirection will no longer sort the data. To
explicitly sort the data after calling ColumSortDirection we suggest you
use the new Sort function although calling HeadingIndex will also work.
[Chg] (All) Listbox: HeadingIndex no longer will re-depress the bevel button of
the listbox. this has the desired side effect of making it so that the
columnSortDirection won't change if the user writes code like this
listbox1.headingIndex = listbox1.headingIndex. Although this will work we
suggest you use listbox1.sort instead of the above.
[Chg] (IDE) Scripting REALbasic: It is no longer possible to build a 68k target
with REALbasic. You will need to wrap the relevant code in a try block.
[Chg] (Mac) Stack Size: increased from 24K to 256K. This allows recursion to
proceed 10 to 20 times more deeply before causing a
StackOverflowException.
4.0a6 -- 2001/11/21
[New] (Mac) AppleEvent.Ptr and ReplyPtr: these two new integer properties
provide pointers to the underlying AppleEvent data structures, for use
with Declares.
[New] (All) Editfield: added paragraph alignment, via the following new
properties: Alignment (integer) -- controls alignment/justification of
the entire EditField. SelAlignment (integer) -- controls
alignment/justification of the selected text -- or more accurately, the
paragraphs that include any or all of the selected text. Values for both
properties will be as follows: 0: default alignment; 1: left justified;
2: centered; 3: right justified; -1: mixed, used as the value of
SelAlignment when the selection spans multiple paragraphs which have
different alignment (Note: alignment for single-line EditFields works
only on Win2000/XP, or on MacOS where ATSUI is available. To achieve the
same effect on older systems, use a multiline editfield without a
vertical scrollbar. Then handle the enter/return key to prevent the user
from going to the next line.)
[New] (All) EditField: added horizontal scrollbar, and ScrollPositionX
properties. ScrollBarHorizontal (boolean) -- determines whether or not
the editfield will have a horizontal scrollbar. If true, then the text
does not word wrap. (Note: this property cannot be set at runtime).
ScrollPositionX (integer) -- scrolls horizontally to a point (in pixels)
in the editfield. (Note: on Windows, ScrollPositionX only works for
Win2000/XP; on MacOS, it works only for systems with ATSUI, or for
multi-line EditFields.)
[New] (Mac) EditField.StyledTextPrinter: available once again.
[Kis] (Mac) EditField.StyledTextPrinter: bold text sometimes fails to draw on
some versions of MacOS. This appears to be an Apple bug, and we're
currently looking for a work-around.
[New] (All) Editfield: ScrollBar property renamed to ScrollBarVertical.
[Dep] (All) Editfield: ScrollBar property now deprecated.
[New] (All) Listbox: Added triangular sorting widgets to the headers of
listboxes. Headers default to the ascending sort widget. Clicking on a
header that is already depressed will switch the widget from ascending to
descending or descending to ascending. It will also resort the data
accordingly. If you use the CompareRows event it will automatically
handle any sort direction changes. If you use the ResortColumns you are
responsible for handling it when the user switches sort directions. To
get/set the sort direction manually use the following method
"ColumnsortDirection(column as integer)". Valid sort directions are as
follows. -1 = descending, 0 = don't sort, 1 = ascending (default). Don't
sort won't sort your data, and it won't call your Resort, or CompareRows
events either. If you specify don't sort the user can't change the value
of the sort widget by clicking on it. The sort direction can be set even
when there is no header present.
[Kis] (OSX) Listbox SortWidget: OS X doesn't provide a way to make a listbox
header appear without a sort widget. Using Don't sort on OS X, works
functionally but will display the descending sort widget.
[Kis] (All) Listbox SortWidget: If there isn't enough room for your text and
the sort widget the widget and the text will overlap.
[New] (Mac) Listbox: When both horizontal and vertical scrollbars are used, the
"dead space" in the lower-right corner is now filled with the proper
appearance (when running on Macs with Appearance Manager 1.1 or later).
[New] (All) RbScript: classes can now declare new events using a New Event
declaration
[New] (All) RbScript: Methods can handle events using the "Handles Event"
declaration.
[New] (All) Shell: New events and properties allow interactive use of a shell
session.
[New] (Mac) System.KeyScript: this new integer property allows you to get and
set the keyboard script. The values are script systems, e.g. 0 for
MacRoman, 1 for MacJapanese, etc. In addition, you can assign negative
numbers to get various special effects, e.g., assign -1 to switch to the
next layout in the Keyboard menu. For more info see:
<http://developer.apple.com/techpubs/mac/Text/Text-386.html>
[Chg] (All) Database -- REALdb: trailing semi-colons are now ignored when
performing a SQL Select or Execute statement.
[Chg] (All) Database -- 4D: trailing semi-colons are now ignored when
performing a SQL Select or Execute statement.
[Opt] (Mac) EditField: performance on large amounts of text has been
substantially improved.
[Chg] (IDE) Find & Replace: "Include In Search" and "Where to Search" switched
to better match workflow.
[Chg] (IDE) Build Dialog: Build Option for 68k has been removed.
[Chg] (All) SpriteSurface: order of events within a frame has been changed for
improved convenience. On each frame, we now (1) call NextFrame; (2) check
for collisions; (3) update the screen.
[Fix] (Win) BevelButton: the background now shows through when placed on a
tabpanel.
[Fix] (Win) Checkbox, RadioButton: the background now shows through when placed
on a tabpanel.
[Fix] (Mac) EditField.Bold, Italic, Underline: setting these properties in the
IDE once again has the intended effect on the initial style of the field.
[Fix] (IDE) External Project Items: changes to properties, constants, New
Events, etc. now cause external items to be marked for saving to disk.
Also, these changes are disallowed if the external item is locked in the
Finder.
[Fix] (IDE) External Project Items: modules which are stored externally can now
access their properties in built apps without causing a
NilObjectException.
[Fix] (IDE) Find & Replace: ReplaceAll no longer causes infinite recursion when
the item you are replacing is a subset of the replacement text. e.g.
"Bana" -> "AppleBanana" (broken for Current Method Scope in 4.0a5)
[Fix] (IDE) Find & Replace: ReplaceAll now replaces all occurences of the found
item in the Current Selection Scope and the Current Method scope even
when the item is on the last line of the search.
[Fix] (IDE) Find & Replace: Advanced options hidden by default.
[Fix] (IDE) Find & Replace: "Include In Search" checkboxes now turn off when
disabled to more accurately reflect what will actually happen in your
search.
[Fix] (Car) FolderItem.DisplayName: no longer crashes in a Carbon app running
on MacOS 8 or 9.
[Fix] (Mac) Listbox: Fixed a memory leak that occurred when drawing a
disclosure triangle or a checkbox.
[Fix] (All) Listbox: 0 width (or invisible) columns no longer are visible when
they come after the last visible column in the listbox.
[Fix] (Win) OpenAsPicture: had trouble opening pictures depending on the bit
depth of the picture. Was broken in 4.0a4.
[Fix] (All) PopupMenu: MouseDown now fires if PopupMenu has no rows. Also,
returning True from MouseDown now stops the menu from displaying.
[Fix] (Win) ProgressBar: indeterminant progressbars no longer flicker through
tabpanels.
[Fix] (All) RbScript: classes which inherit interfaces and declare properties
no longer cause crashes when cast to one of the inherited interfaces.
[Fix] (All) RbScript: overloading no longer breaks when assigning to a method.
[Fix] (All) RegEx: You can now use Replace when the TargetString contains null
characters.
[Fix] (All) RegEx: You can now use null characters in the ReplacementPattern.
[Chg] (All) RegEx: Using a null character in SearchPattern will result in a
SearchPattern exception. If you want to search for null character use
\x00 instead.
[Fix] (Mac) UnhandledException event no longer intercepts EndExceptions in
built applications.
4.0a5 -- 2001/11/09
[New] (All) EditField.CharPosAtXY: returns the position (1-based) of the
character at pixel coordinates X,Y (relative to the EditField).
I.e., the character at position x,y is the 7th chatacter in the
editfield.
[New] (All) EditField.InsertionPosAtXY: returns the position (0-based)
of the insertion point closest to pixel coordinates X,Y (relative
to the EditField).
[New] (All) Listbox: CompareRows event added -- useful for creating
custom sorts in a listbox. See the CompareRows read me.
[New] (All) Listbox: MouseDown, MouseDrag and MouseUp events added.
Returning true in MouseDown causes the MouseDrag and MouseUp
events to fire and the default listbox click processing not to
fire.
[New] (All) RbScript: "Object" may be used with IsA; it will return true
for any non-null object. Any object may be assigned to a reference
of type Object.
[New] (All) RbScript: interfaces supported, declared via Interface...End
Interface structure. See RbScript Interfaces read me.
[New] (All) RbScript: typecasting supported. Use the desired type's name
as a function whose single argument is the object reference you
want to cast. It will either succeed or report an
IllegalExceptionError.
[New] (IDE) Find And Replace: Control names -- results are revealed in
the code browser. NOTE: None of the new options allow replacing.
[New] (IDE) Find And Replace: Declarations -- Menu Handlers, User
Property Declarations, and Method Declarations including
parameters and reveals them in the Code Browser.
[New] (IDE) Find And Replace: Project Items names -- including Classes,
Windows, folders, resources, pictures, and so on. NOTE: None of
the new options allow replacing.
[New] (IDE) Find And Replace: Property Values: NOT IMPLEMENTED YET!
[New] (IDE) Find And Replace: searches current selection in code editor.
You can now search, replace and most importantly replace all
within the current selection.
[New] (IDE) Project Window: "New Subclass" contextual menu command
creates a new subclass of the selected class.
[New] (IDE) Super property: editfield with autocompletion and a
hierarchical pop-up menu replace the old linear pop-up menu for
setting the super of a class.
[New] (IDE) Toolbar: dragging from the toolbar to the Project window now
creates a new subclass of the dragged control.
[New] (Mac) EditField.SelBold, SelTextColor, etc.: SelLength is zero now
works.
[New] (Mac) EditField: Home, End, Page Up/Down, and forward-Delete keys
now work.
[Opt] (Mac) EditField: adding text to an editfield in a loop is faster.
[Fix] (All) color properties: Hue, Saturation, and Value color
properties no longer return incorrect values when hues re in the
range 0 through 0.166667 (0 through 60 degrees). This broke in
4.0a3 for Mac OS and has always been broken for Windows.
[Fix] (All) Dictionary: Remove method no longer remove too much.
[Fix] (All) Variants: assigning a variant to a local Color variable no
longer causes an "internal compiler error."
[Fix] (Car) Floating Windows: MacProcID values not normally associated
with floating windows no longer prevent the window from floating
properlysuch as 1040, an unadorned window).
[Fix] (IDE) Arrays: NewProperty -- empty array properties, (i.e. with
Bounds of -1). [4.0a4]
[Fix] (IDE) Debugger: Exceptions no longer reported in the wrong place
(broken in 4.0a4).
[Fix] (IDE) Find And Replace: searches current selection in the project
window if a code browser window is not open. NOTE: None of the new
options allow replacing.
[Fix] (IDE) Find And Replace: wrapping in current source -- the find
will start at the current selection search downwards and wrap to
search again at the top when it reaches the bottom. NOTE: None of
the new options allow replacing.
[Fix] (IDE) Listbox: Disclosure Triangles now highlight again when
clicked upon if no CellBackgroundPaint is specified. Allowing this
with CellBackgroundPaint would unfortunately draw a grey
background behind the triangle which will most likely not match
your background, so we decided to turn highlighting off in this
case. It may be possible for us to work around this issue in some
future release of REALbasic.
[Fix] (IDE) Quitting a run within the IDE: CancelClose event errors no
longer cause attempts to quit subsequent runs to be ignored.
[Fix] (Mac) Code Browser: entering code in an item flickers less
(updating an element name from plain to bold when a user enters
code into the browser).
[Fix] (Mac) EditField.BackgroundColor: EditField redraws itself when
this property is changed.
[Fix] (Mac) EditField.CharPosAtLineNum: returns correct values.
[Fix] (Mac) EditField: caret (blinking cursor) size in a field
containing no text is now a better approximation of what it will
be when text is inserted.
[Fix] (Mac) EditField: single-line EditFields no longer show the
selection in outline mode when they don't have the keyboard focus
(multi-line EditFields continue to do so).
[Fix] (Mac) EditField:SelText: scrolls the cursor into view.
[Fix] (Mac) Listbox: flickering reduced of listboxes on TabPanels in
cases where the arrow keys are used to scroll the contents or the
contents are drag scrolled.
[Fix] (Mac) Listbox: memory leak when redrawing fixed.
[Fix] (Win) ProgressBar: indeterminant progressbars no longer show
through all tabs.
[Tip] (All) Listbox: CompareRows -- A good strategy for sorting Dates
would be to store the Date's total seconds property in a 0 width
column in your listbox (BTW -- never use columns beyond the
columncount) and when the CompareRow event fires for your date
column sort based on the total seconds column instead.
4.0a4 -- 2001/11/02
[New] (All) Application.BalloonHelpVisible: BalloonHelp is disabled when
set to false and enabled when set to true. Note: supported on
Windows only.
[New] (All) Dictionary class: stores one-to-one mappings of keys to
values. Both keys and values may be any datatype. Optimized for
rapid look-up of values regardless of the number of items it
contains (look-up time is approximately constant).
[New] (All) Function: DocumentsFolder -- returns a folderitem that
represents the user's Documents folder.
[New] (All) KeyNotFoundException: exception type added. Raised when
attempting to access a Dictionary entry with a key that the
Dictionary does not contain.
[New] (All) Listbox: EditCell: will scroll the cell into view when
EditCell is called when the cell is not completely visible. It
performs the scroll in the most minimal way possible. E.g. if the
cell is to the right of the listbox or is overlapping its right
border, the cell will be scrolled such that its right border is
flush with the list's right border.
[New] (All) OutOfMemoryException: exception type added. Raised in
certain cases when an operation cannot be completed due to
insufficient memory.
[New] (All) Picture: HorizontalResolution and VerticalResolution
properties added. OpenAsPicture sets them, and SaveAsPicture or
ExportPicture writes them. Default resolution is 72 for creating a
new picture.
[New] (All) Sound: Pan property added -- specifies the relative volume
of the right and left channels within the range from -100 to 100.
A value of -100 mutes the right channel, and a value of 100 mutes
the left channel. Default 0.
[New] (All) Sound: Volume property added -- specifies the output volume
for the current sound as a percentage. Setting volume to 0 mutes
the sound, while setting volume to 100 plays the sound with
"normal volume" (ie. your current sound settings for your
computer). Default 100.
[New] (All) Variant: now has a number of new convenience methods and
properties: IntegerValue: returns the value of the variant as an
integer. ColorValue: returns the value of the variant as a color.
DoubleValue: returns the value of the variant as a double.
ObjectValue: returns the value of the variant as an object.
StringValue: returns the value of the variant as a string.
BooleanValue: returns the value of the variant as a boolean. Type
as Integer: v.Type is equivalent to VarType(v) IsNumeric as
Boolean: equivalent to IsNumeric(v) IsNull as Boolean: equivalent
to IsNull(v) Hash as Integer: returns a hash value for the
variant, i.e., one that will always be the same for any variant
with that same value Equals(v2 as Variant) as Variant: returns
true if v2 is the same type and has the same value as this one.
[New] (All) Variants: color values can now be stored in variants; their
VarType is 16.
[New] (IDE) File Types: REALdb is now included in the file types
popupmenu list.
[New] (IDE) Tips window: method help for overloaded subroutines now
shows parameters in parentheses, which is the syntax required by
the compiler.
[New] (Mac) EditField: Drag & drop is now supported.
[New] (Mac) EditField: SelCondense and SelExtend now work; these styles
are also supported when set via style data or loaded from a styled
text file.
[New] (Mac) EditField: styled copy/paste is now supported (for styled
EditFields).
[New] (Mac) EditField: TextStyleData property now supported, as is
SetTextAndStyle.
[New] (Mac) FolderItem: SaveStyledEditField and OpenStyledEditField now
work.
[New] (Mac) UnhandledException event -- catches otherwise unhandled
exceptions on Application class. The event can return True if it
handles the event and False if it wants REALbasic's default
unhandled exception processing to occur. (Not yet implemented on
Windows.)
[New] (OSX) Serial Ports: available to Carbon apps running in Mac OS X.
This includes the Serial Control, SerialPort class,
System.SerialPortCount, and System.SerialPort. Note that Carbon
apps running under MacOS 8-9 cannot access serial ports; for those
systems, build a Classic PowerPC app instead.
[Opt] (IDE) Code Editor: multiple uses of Delete (or forward-delete) are
now combined into one action in the undo/redo queue. Also
improves editor performance under OS X.[Chg] (All) DataControl:
data bound controls -- disabled when the ReadOnly property is set
to true (or read only in the case of EditFields).
[Chg] (All) IsA method and typecasting: now report that all classes
derive ultimately from Object. For example, x IsA Object returns
true for any object x, and "o = someVariant" works when o is
declared as type Object (and the variant contains any object).
[Chg] (All) VarType: VarType of a variant containing an object is now 9
rather than 13, to better match the corresponding value in Visual
Basic.
[Chg] (Win) MDI application: now fires the quit menu handler when the
MDI parent window is closed. Event hierarchy for closing an MDI
parent window now looks like this: Quit menu handler (BRAND
NEW!!!) CancelClose (for each MDI child window) Application Close
Close (for each MDI child window)
[Fix] (All) Control.Close: visual controls are now hidden before being
deleted.
[Fix] (All) Database.SQLSelect: no longer crashes after 3 or more
selections are done, this also affected the DataControl. Was
introduced in 4.0a3.
[Fix] (All) Database: PostgreSQL plug-in -- updating a record (using
Cursor.Update) which contain null fields now works.
[Fix] (All) EditField: MouseDown and MouseUp -- events are now called
appropriately. Note that returning true from MouseDown prevents
the EditField from handling the click.
[Fix] (All) Listbox: datasource can now be set in code. Note that this
parameter takes a string argument. i.e. Listbox.DataSource =
DataControl.Name
[Fix] (All) Listbox: Editable Cells can now be clicked in again without
the text disappearing off to the left.
[Fix] (All) Listbox: Scrollbar columnwidths are now calculated more
accurately. This results in the last column not drawing beyond
the listbox. This was especially noticable when the last column
contained an editable cell, as it would partly overwrite the
scrollbar.
[Fix] (All) RbScript: Mid allows length parameter to be omitted, InStr
allows start parameter to be omitted; these were broken in 4.0a2.
[Fix] (All) UBound:bounds of a multi-dimensional boolean array now
correctly returned.
[Fix] (IDE) Controls: Copying a control from one window and pasting it
to another window no longer crashes. Broken in 4.0a3.
[Fix] (IDE) New Property/Edit Property Dialog: error message more
approriate when attempting to add a property with no declaration.
Properties with invalid declarations can no longer be added. e.g.
"dim myProperty as integer" , "myProperty as" or "myproperty".
[Fix] (Mac) Database: OpenBase plugin -- dates and timestamps now
retrieved and inserted in the correct format.
[Fix] (Mac) Database: OpenBase plugin -- now supports multiple cursors.
[Fix] (Mac) EditField: GotFocus and LostFocus -- events are now called
appropriately.
[Fix] (Mac) EditField: incorrect word wrapping under classic MacOS has
been fixed.
[Fix] (Mac) EditField: mouse cursor is now updated appropriately.
[Fix] (Mac) EditField: text position now matches that in 3.5 EditFields;
this is especially noticeable, for example, in the Properties
window.
[Fix] (Mac) Listbox: ActiveCell property -- Fixed a problem where
listboxes wouldn't dispose it. Introduced in 4.0a3
[Fix] (Mac) Listbox: CellGotFocus and CellLostFocus events now fire when
moving between Listbox cells.
[Fix] (Mac) Listbox: contents hidden from view -- fixed several related
occurences of where this could occur.
[Fix] (Mac) Listbox: focus rings displayed around the ActiveCell on all
Mac configurations.
[Fix] (Mac) Listbox: highlight of rows on non hierarchical listboxes no
longer clipped just to the width of the columns.
[Fix] (Mac) Listbox: multiple highlight no longer occurs on classic Mac
listboxes that don't have double buffering. NOTE: double
buffering is only turned off on the Mac when there isn't enough
memory to double buffer the listbox.
[Fix] (Mac) Listbox: NewPicture in a listbox's CellBackgroundPaint event
or CellTextPaint events no longer confuses the origin of double
buffered listboxes.
[Fix] (Mac) Listbox: Row Pictures are now transparent again.
[Fix] (Mac) RbScript: Format function no longer crashes (broken in
4.0a1).
[Fix] (New) UBound: dimension parameter -- an optional second parameter
"dimension" added. Gives the bounds of that dimension. When left
unspecified UBound will give the bounds of the 1st dimension. If
an invalid dimension is specified e.g. -4, 0, 5 (in a 4d array)
UBound will throw an OutOfBoundsException. NOTE: Dimensions are
counted upwards starting at 1. SPECIAL: if you pass -1 as the
second parameter, UBound will give you the number of dimensions in
the Array.
[Fix] (Win) Listbox.KeyDown: now returns a valid key parameter.
[Dep] (All) Collection class: Dictionary class should be used instead.
Collection is useful mostly for conversion of VB projects.
[Dep] (All) EditField: MouseUp -- return value of this event has no
effect, and its use is deprecated.
[Kis] (Mac) EditField: Shadow and Outline styles are not supported by
the new EditField, and probably never will be; consider these
styles deprecated.
[Kis] (Win) Database: OpenBase plugin -- no Win32 target.
[Kis] (Win) Sound: midi files do not allow the pan or volume properties
to be set when playing.
4.0a3 -- 2001/10/24
[New] (All) Controls: Close method added for control classes. Closing a
control permanently removes the object from memory, and it can no
longer be accessed. You can close conventional controls, as well
as those belonging to a control array. When closing indexed
controls (i.e., control array controls), the indexes will shift
accordingly to fill in the gaps. For example, if you delete index
0, index 1 becomes 0, index 2 becomes 1, etc...
[New] (All) Database: 4D plug-in -- DatabaseCursor -- MovePrevious,
MoveFirst, and MoveLast added.
[New] (All) Database: REALbasic Database -- DatabaseCursor --
MovePrevious, MoveFirst, and MoveLast added.
[New] (All) Graphics: StringHeight method Added. You pass it text and a
wrapWidth, it returns the height of text as it would be drawn.
[New] (All) Listbox: ActiveCell property added. This is the editfield
that the listbox is using for its editable cell operations. You
can use this property to set or get the text of the listbox
(selText), set the selection, or change other properties of the
listboxes editfield. NOTE: You can not currently set the
ActiveCell so you will not be able to use a subclass editfield as
a substitute. NOTE: We do not guarantee that all of the features
of the editfield make sense to use in context of a listbox.
[New] (All) Listbox: CellClick event added. It occurs when the user
clicks the mouse on the cell of a listbox. The event will pass you
the row and column of the cell clicked and the x, and y position
of the click which are relative to the top left of the cell and
correspond exactly with the bounds of the graphics property in the
CellBackgroundPaint event. Returning true from this function will
cause the event to not be processed further (this means that
editable cells won't be editable and listbox selection won't
change.
[New] (All) Listbox: CellGotFocus event added. It occurs when a user
enters an editable cell of a listbox. The event will pass you the
row and column of the cell that just got the focus.
[New] (All) Listbox: CellKeyDown event added. It occurs when the user
presses a key on the keyboard whilst a listbox cell is currently
being edited. The event will pass you the row and column of the
cell being edited and the key pressed. returning true from this
function will prevent the text from changing (at least
automatically, you can do it yourself (see ActiveCell property),
and keep the CellTextChange event from firing.
[New] (All) Listbox: CellLostFocus event added. It occurs when a user
leaves an editable cell of a listbox either by pressing return or
esc, or by the user clicking on another cell. The event will pass
you the row and column of the cell that just lost the focus.
[New] (All) Listbox: CellTextChange event added. It occurs after the
KeyDown event if keydown returns false. The event will pass you
the row and column of the cell being edited.
[New] (All) Listbox: EditCell method added. You pass it a row and
column number. It will scroll the cell into view and temporarily
change the cell to an editable cell, setting the focus in that
cell.
[New] (All) Picture: depth property added -- read-only.
[New] (All) RbScript: "Inherits" declaration added to implement class
inheritance.
[New] (All) RbScript: Colors can now be constructed with the RGB, CMY,
and HSV functions, and the usual color properties are available.
[New] (All) RbScript: destructors supported.
[New] (All) RbScript: IsA operator supported.
[New] (All) ScrollBar: MouseDown, MouseDrag and MouseUp events added.
[New] (All) Slider: MouseDown, MouseDrag and MouseUp events added.
[New] (All) TabPanel: MouseDown, MouseDrag and MouseUp events added.
[New] (IDE) Database: Schema Editor View Data -- column names appear at
the top of the View Data window.
[New] (IDE) Database: Schema Editor View Data -- number of rows in the
table now displayed in the title of the View Data window.
[New] (IDE) Database: Schema Editor View Data -- scrolling vertically
and horizontally in the View Data window allows you to see more of
your data.
[New] (IDE) External Project Items: windows, classes, and modules can
now be stored and updated external to the project file. To do
this, hold down Command+Option while dragging the item into a
project file. It will be imported as a reference to the original
file, rather than copying the data into the project. See the
External Project Items Read Me for more details.
[New] (IDE) Run command: Applescriptable/Recordable.
[New] (IDE) Run command: changes to "Resume" while your application is
running, to better reflect what it does and to act as an extra
reminder that your app is already running.
[New] (Mac) Listbox: Editable Cells now show a focus ring when the
contents are being edited.
[Chg] (All) DataControl: MovePrev method and event renamed to
MovePrevious.
[Chg] (All) Listbox: top and left of a listbox draw the default
gridlines -- this affects how the text and other elements are
centered in the cell, and can affect appearance of top and left of
listbox with borders that are thicker than one pixel wide.
[Chg] (All) StaticText: boolean result from MouseUp event removed.
[Chg] (IDE) Table Schema Editor: primary key not being specified when
creating a table causes an alert to appear.
[Chg] (Win) EditField: single line editfields can now accept tabs.
[Fix] (All) Database: PostgreSQL plugin -- getting the field schema
values by field name now works. Example:
schema.field("FieldType").getString
[Fix] (All) Listbox: Horizontal scrolling code is no longer called twice
resulting in better performance, and less flicker on Win32.
[Fix] (All) Quit: calling in code and selecting from the menu now
behaves consistently.
[Fix] (All) RbScript: State property is now readable.
[Fix] (All) Self.Close: no longer crashes when called from within an
event from a plugin. Was broken in 4.0a2.
[Fix] (All) Socket:running a second time, after the first run died due
to an error or the Kill command, no longer crashes.
[Fix] (IDE) Controls: duplicated custom controls no longer lose their
super setting.
[Fix] (IDE) Database: Schema Editor View Data -- works again (broken
since 4.0a2).
[Fix] (Mac) EditField: crash in new EditField caused by deleting a range
of text that includes the selection has now been fixed.
[Fix] (Mac) EditField: drag-selecting a large block of text no longer
causes an assertion failure.
[Fix] (Mac) Listbox: Checkboxes and disclosure triangles now draw within
the bounds of the listbox. was broken in 4.0a1.
[Fix] (Mac) Listbox: Disclosure Triangle of a hierarchical listbox no
longer moves down a pixel when clicked on.
[Fix] (Mac) Listbox: drawing origin of a listbox no longer gets
corrupted when a user updates another control from within the
CellBackgroundPaint or the CellTextPaint events. (4 alpha)
[Fix] (Mac) Listbox: white line at the bottom of each row in a
hierarchical listbox is now covered again by single line width
borders.
[Fix] (Mac) MacOS 8.1 (and earlier) compatibility: ATSUnicodeLib not
being present no longer prevents launch.
[Fix] (OSX) Bundle Information: UTF-8 encoding now properly implemented,
which fixes problems with the application name as it appears in
the menu bar where non-Roman characters are involved.
[Fix] (OSX) Compiler:running your program in the IDE under Mac OS X
(especially 10.1), or in classic Mac OS when the IDE's memory
partition is set to 64MB or larger no longer crashes.
[Fix] (Win) Listbox: text color set in the Windows Control Panels used
for text color again.
[Fix] (Win) Quit: calling Quit in code no longer finishes executing code
in the method that was calling it.
[Fix] (Win) Socket: destroying a socket no longer causes extraneous
socket events to be fired.
4.0a2 -- 2001/10/08
[New] (All) Canvas: Focus and Key properties and events added. 3 new
properties: UseFocusRing, AcceptFocus, and AcceptTabs and 3 new
events:GotFocus, LostFocus, and KeyDown. See the New Canvas ReadMe
for more details.
[New] (All) Database: 4D Plugin -- blob comparison now works.
[New] (All) Database: REALdb -- blob comparison now works.
[New] (All) GroupBox: MouseDown, MouseDrag, and MouseUp events added.
[New] (All) Line control: MouseDown, MouseDrag, and MouseUp events
added.
[New] (All) Listbox: CellBackgroundPaint event added. You can now paint
to your hearts content here. If you don't return a value or you
return false REALbasic will attempt to handle row highlighting,
and column highlighting for you (where appropriate). If you return
true, you can handle this yourself.
[New] (All) Listbox: CellTextPaint event added. You are passed x and y
which is ideal position to draw your original text based on the
columnAlignment. You can draw the text yourself or you can change
the state of the graphics object and have it draw it for you.
(e.g. g.foreColor = RGB(255, 0, 0) will direct it do draw red
text). REALbasic will attempt to perform appropriate
CellHighlighting on hierarchical listboxes if you return false. If
you return true you can handle this yourself.
[New] (All) Listbox: DefaultRowHeight is a new property on the listbox
which determines the height of every row of the listbox. To have
the height determined automatically based on the font height
chosen, set the DefaultRowHeight to -1.
[New] (All) Oval control: MouseDown, MouseDrag, and MouseUp events
added.
[New] (All) ProgressBar: MouseDown, MouseDrag, and MouseUp events added.
[New] (All) Rb3DSpace: fog support added through two new properties:
FogVisible (Boolean) indicates whether fog should be drawn at all;
FogStart (Integer) indicates how far away from the camera the fog
should begin. The fog gets thicker from that point (or Hither,
whichever is further away) until the Yon distance, where it is
fully opaque. The fog color is the same as the SkyColor.
[New] (All) RbScript: Class/End Class structure now supported -- used to
define classes for use inside a script. Properties and methods are
supported; inheritance and interfaces are not.
[New] (All) Rectangle control: MouseDown, MouseDrag, and MouseUp events
added.
[New] (All) RoundRect control: MouseDown, MouseDrag, and MouseUp events
added.
[New] (IDE) Project Items: dragging a project item (such as an
AppleScript) onto a button or into a code editor now inserts at
least the name of that item.
[New] (Mac) EditField: EditFields now use the new underlying technology
(in MacOS 8.5 and later). It's still not quite done yet, but
nearly so.
[New] (Mac) EditField: Symbol font, as well as accented and other
high-ASCII characters, are now supported by the new unstyled
EditFields (in addition to other improvements too numerous to
mention).
[New] (Mac) File Name Extensions: Open dialogs -- filters files by
extension if they have no type code set (as happens with some
ill-behaved Mac OS X applications). In other words, a file will be
available in an Open dialog if either its MacType matches the type
you specified, or if its MacType is '????' or null but its
extension matches one of the extensions you specified in the File
Type settings.
[New] (OSX) Control Captions: region codes other than that of the
application now supported. Some OS controls (such as PushButton)
can now show a caption that uses an encoding that doesn't match
your application's region code (or while running within the IDE,
the IDE's region code). For example, an English application can
set a Japanese caption, as long as it first sets the button's
TextFont to Osaka. (This has always worked in classic MacOS, but
did not previously work in Mac OS X.).
[New] (OSX) File Name Extensions: FolderItem.DisplayName -- property
added which gives you the name of a file as it should be seen by
the user. This property is read-only. The DisplayName is usually
the same as FolderItem.Name, but under Mac OS 10.1, it may be the
name without the extension, depending on whether the user has file
extensions hidden for that particular file.
[New] (OSX) File Name Extensions: FolderItem.ExtensionVisible --
property added which allows you to tell (or change) whether a
given file has its file extension hidden or visible, or change
that status. Currently applies only under Mac OS 10.1. Note that
when you change this setting, the Finder or subsequent Navigation
dialogs may not reflect the change right away.
[New] (OSX) File Name Extensions: FolderItems -- creating a new file
(e.g., via CreateAsTextFile) sets the "hide extension" flag
according to the value of the ExtensionVisible property.
[New] (OSX) File Name Extensions: GetSaveFolderItem and SaveAsDialog --
now present the Mac OS 10.1 user with a new "Hide Extension"
checkbox, on by default. The FolderItem returned has its
ExtensionVisible property set according to the user's use of this
checkbox.
[New] (OSX) FolderItem.Launch: behaves the same as double-clicking the
item in the Finder.
[New] (OSX) Progress Bars: larger appearance now supported when the
height is set to 18 pixels or more.
[New] (Win) Windows: MDIWindow class added to the application class.
This class is used to control the behavior of the MDI window on
Windows. See the MDI Window Class Read Me for more details.
[Chg] (Car) File Name Extensions: Carbon built applications -- file
extensions are now written to the 'plst' resource without the
leading period, per Apple standards.
[Chg] (IDE) File Name Extensions: Project Files -- now have ".rb"
appended to the project name if not there already when doing a
"Save As". Under versions of Mac OS prior to 10.1, you can easily
change or remove this if you wish. Under 10.1 the extension may be
hidden by default, depending on your system preferences.
[Chg] (IDE) Interfaces: Adding new interfaces to the project previously
resulted in a project entity named "Class1" or "Class2" etc. Now
it results in a project item named "Interface1" or "Interface2"
etc.
[Fix] (All) CheckBox: datasource can now be set in code. Note that this
parameter takes a string argument. i.e. CheckBox.DataSource =
DataControl.Name
[Fix] (All) Database: PostgreSQL Plugin -- error code is now initialized
to 0 before connecting.
[Fix] (All) Database: PostgreSQL plugin -- fieldschema now returns 5
columns instead of 6.
[Fix] (All) Database: REALdb -- long varbinary column adding with Alter
Table SQL statement now works.
[Fix] (All) EditField: datasource can now be set in code. Note that this
parameter takes a string argument. i.e. EditField.DataSource =
DataControl.Name
[Fix] (All) Listbox: CellBorders now form a rectangle around a cell
(previously they would overlap into other cells and looked bad
when applied to individual cells).
[Fix] (All) Listbox: Cellborders/GridLines now center themselves between
rows and columns so that the contents are more balanced.
[Fix] (All) Listbox: Failed Assertion no longer occurs when removing a
scrollbar in a Canvas's MouseUp event.
[Fix] (All) Listbox: FocusRing now appears after refresh, and focusrings
are moved properly when the control moves.
[Fix] (All) Listbox: Hierarchical listboxes now highlight the item in
the first column to be more consistent with the way highlighting
is done in the Finder/Explorer.
[Fix] (All) Listbox: Scrolling of invisible listboxes, or listboxes on
an invisible tab of a tab panel, by setting the scrollPosition or
the ScrollPositionX no longer result in unwanted portions of the
listbox appearing.
[Fix] (All) PopupMenu: datasource can now be set in code. Note that this
parameter takes a string argument. i.e. PopupMenu.DataSource =
DataControl.Name
[Fix] (All) RbScript: disposes of temporary data structures after
compiling, thus plugging a memory leak that occurred on every run
or pre-compile.
[Fix] (All) RbScript: For-Next loop allows floating-point loop counters
and step values.
[Fix] (All) RbScript: very large integer constants are automatically
converted to double precision if they would have exceeded the
upper limit of a 32-bit signed integer.
[Fix] (All) Self.Close: no longer crashes when used inside an event such
as MouseDown in a Canvas.
[Fix] (All) StaticText: datasource can now be set in code. Note that
this parameter takes a string argument. i.e. StaticText.DataSource
= DataControl.Name
[Fix] (IDE) File Types dialog: clicking the "OK" button now counts as
changing the project, thus enabling it to be saved (or prompting
you to save when you close the project).
[Fix] (IDE) GetOpenFolderItem: Open event of the default window --
calling GetOpenFolderItem or using FolderItemDialog classes in the
Open event of the Default window no longer crashes when called
from when running within the IDE.
[Fix] (IDE) Listbox: gridlines no longer appear when not required in
some ListBoxes in the IDE.
[Fix] (Mac) Listbox: editable cell's text is now visible again.
[Fix] (Mac) Listbox: Listboxes on a tabPanel and listboxes in the
CodeBrowser no longer flicker when scrolling. (Mac Only)
[Fix] (Mac) Movies: FolderItem.OpenAsMovie -- QuickTime initializes if
it hasn't already. Fixes a bug which caused this method to return
nil in a built application unless something else (e.g., a Movie
control) had already initialized QuickTime.
[Fix] (Run) Listbox: no longer flickers when row is selected. (Mac
Runtime only)
[Fix] (Win) BalloonHelp: clearable when you already have a HelpTag set.
[Fix] (Win) Byref: local variables are now initialized to 0 when passed
byref. This fixes the problem with calling ParseDate without first
creating a new date object, and passing strings byref without
actually using the strings in your function.
[Fix] (Win) Graphics: painting on a window while resizing no longer
draws on the desktop.
[Fix] (Win) Listbox: Cellborders and Gridlines now work for Win32.
[Fix] (Win) Plug-in SDK: REALSetControlFocus function -- now fully
clears the previous focus.
[Fix] (Win) Resizing: resizing a window no longer causes horrible
flicker.
[Kis] (Mac) EditField: does not currently support CharPosAtLineNum,
LineNumAtCharPos, ScrollPosition, TextStyleData, SetTextAndStyle,
or StyledTextPrinter. (4.0a2)
[Kis] (Mac) File Name Extensions: "Open" dialogs: there still is no way
to enable selection of any (say) text file, without using a
wildcard type to allow all files. If the file on disk does not
have a type code set, and it's using an extension you didn't think
of when you defined your File Type, then there is simply no way to
know that it's a valid type of file. Please direct your feedback
about this to Apple via their Mac OS X Feedback web page.
[Tip] (IDE) Project Items: dragging Windows and Sounds to a button or
code editor inserts WindowName.Show or SoundName.Play,
respectively (using the actual name of the item, of course).
[Tip] (OSX) File Name Extensions: To give the proper user experience
under Mac OS X, here's what you should do: 1. Whenever displaying
a file name to the user (e.g. as the title of a window), use
f.DisplayName rather than f.Name. 2. Whenever interacting with the
file system, use the true name (f.Name). 3. Leave the
ExtensionVisible property alone in most cases. 4. Be sure to
define extensions for all your document types.
4.0a1 -- 2001/09/24
[New] (All) Bin Function: converts a number into a string in binary
format. See references for Oct and Hex for more detail on how this
works.
[New] (IDE) ListBox: Appearance in the Window Editor reflects more
accurately the appearance in the running application (it's
actually a real ListBox now). Specifically Hierarchical,
GridLinesHorizontal, GridLinesVertical are now displayed in the
ListBox, and changing the HeadingIndex will actually re-sort the
ListBoxes contents in the Window Editor.
[New] (All) ListBox: GridLines/CellBorders added to the ListBox. The
properties are called GridLinesHorizontal and GridLinesVertical.
You can also get/set CellBorders on cell-by-cell basis, the
functions are called CellBorderTop(row, column),
CellBorderLeft(row, column), CellBorderRight(row, column) and
CellBorderBottom(row, column). You can set these to one of
several styles (some of which don't work for Win32 yet). The
styles are default = 0, none = 1, thinDotted = 2, ThinSolid = 3,
ThickSolid = 4, DoubleThinSolid = 5.
[New] (All) ListBox: HasHeading property can now be set at runtime (not
just at compile time).
[New] (All) ListBox: Hierarchical property can now be set at runtime
(not just at compile time).
[New] (All) Plug-in SDK: several new methods and enhancements have been
added; see the SDK version history for details.
[New] (All) RbScript: Parentheses are now allowed (but not required) on
subroutine calls.
[New] (IDE) Color palette: dragged colors now contain a text
description, allowing you to drag from the color palette to the
code editor, the desktop, or any text editor.
[New] (IDE) Copy-click: floating palettes now supported. For example,
hold the Option key and click on the name of a property in the
Properties value, and that name will be inserted into the code
editor as if you'd typed it. Also works for property values,
colors in the Color palette, and tools in the Toolbar.
[New] (IDE) Window Editor: contextual menu added which provides commands
to close the window, switch to the code editor, select any control
on the form, or add a new control based on any class.
[New] (Mac) EditField: single-line unstyled EditFields in MacOS 8.6 and
higher now use a completely different underlying technology. This
brings benefits such as no 32K text limit and CoreGraphics font
rendering in OS X. But they're still a work in progress -- see
known issues below.
[New] (Mac) ListBox: Smooth scrolling with virtually no flicker -- Now
double buffered on the Macintosh.
[New] (Mac) RbScript: compiles Scripts on PowerPC. Now compiled to
machine language and executed as native code instead of running
through an interpreter.
[New] (Win) ListBox: Flickers less with horizontal scrolling on Windows.
[Opt] (Mac) Plug-in controls: redraw only if something is refreshed
within 4 pixels of the control bounds, instead of being redrawn
whenever anything on the window is refreshed. (Plug-in authors
should take care not to draw more than 4 pixels outside their
control bounds.)
[Fix] (All) DataControl: database property -- setting this in code no
longer crashes.
[Fix] (All) Plug-in controls: disabled controls no longer receive the
focus.
[Fix] (All) RbScript: Hex, binary, and octal constants now work without
throwing assertions.
[Fix] (IDE) App.Resources: running your application by choosing "Run"
with the mouse instead of pressing command-R once again
accessible.
[Fix] (IDE) Compile Errors: Windows target returns an error when
building an application that uses the ResourceFork.
[Fix] (IDE) International: some data aware property strings can now be
localized, as well as the binding strings as seen when selecting a
bind from a dialog.
[Fix] (IDE) Window menu: balloon help now correctly matches the menu
commands.
[Fix] (Mac) DrawInto: ListBoxes drawn via DrawInto now draw disclosure
triangles, checkboxes, supports textSize, textFont and textStyle.
ListBox headers are now properly clipped.
[Fix] (Mac) ListBox: Hierarchical ListBoxes -- now draw the column
highlight all the way to the left in Column 0 as the finder does.
[Fix] (Mac) Plug-in controls: REALcontrolFocusRing flag is now observed;
a control without this flag set will not have a focus ring drawn
for it by REALbasic.
[Fix] (Win) BevelButton: caption now aligns properly when it is set
above or below an icon picture.
[Fix] (Win) Canvas.Scroll: refreshes properly after scrolling.
[Fix] (Win) Event order consistency: App.Activate event now fires after
the Window.Open event in MDI applications. Also, the
Window.Activate event now fires for MDI child windows when they
are first displayed.
[Fix] (Win) Event order consistency: closing an SDI application now
suppresses extraneous EnableMenuItems and Deactivate events from
firing.
[Fix] (Win) FolderItem.CreateBinaryFile: BinaryStream class returned
instead of a TextOutputStream.
[Fix] (Win) Graphics.FillPolygon: passing in no points no longer
crashes.
[Fix] (Win) ListBox: vertical ScrollBar moved down one pixel (it now
looks better).
[Fix] (Win) MenuBarVisible: SDI applications again supported.
[Fix] (Win) Strings: string comparisons on Windows NT now work with
double byte characters. Also fixes the problem with including a
NULL character within the string, the string comparison now works
as it does on non NT systems.
[Kis] (Mac) EditField: single-line unstyled EditFields currently suffer
a variety of shortcomings, including the following; don't support
carriage returns, not all properties/methods (e.g. SelText) are
yet implemented, vertical line position is not always appropriate,
font glyphs don't always match those produced by DrawString
[Kis] (Win) Event order consistency: Window.Activate -- if the child
window in an MDI application is originally hidden, then displayed
(in a timer action event for example), the Activate event will not
fire the first time.